// MotionCtrCardManager.cpp: implementation of the CMotionCtrCardManager class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MotionCtrCardManager.h"
#include "MotionControlCard.h"
#include "WGailiMotionControl.h"
#include "WPmacMotionControl.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

CWGailiMotionControl *CMotionCtrCardManager::m_pGailiMontionCtrCard = NULL;
CWPmacMotionControl  *CMotionCtrCardManager::m_pPmacMotionCtrCard = NULL;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMotionCtrCardManager::CMotionCtrCardManager()
{
	m_pGailiMontionCtrCard = NULL;
	m_pPmacMotionCtrCard = NULL;
}

CMotionCtrCardManager::~CMotionCtrCardManager()
{
	FreeMotionCtrCard();
}

CMotionControlCard *CMotionCtrCardManager::GetGailiMotionCtrCard(void)
{
	if (NULL == m_pGailiMontionCtrCard)
	{
		m_pGailiMontionCtrCard = new CWGailiMotionControl();
	}
	return m_pGailiMontionCtrCard;
}

CMotionControlCard *CMotionCtrCardManager::GetPmacMotionCtrCard()
{
	if (NULL == m_pPmacMotionCtrCard)
	{
		m_pPmacMotionCtrCard = new CWPmacMotionControl();
	}

	return m_pPmacMotionCtrCard;
}

void CMotionCtrCardManager::FreeMotionCtrCard(void)
{
	if (m_pGailiMontionCtrCard!=NULL)
	{
		delete m_pGailiMontionCtrCard;
		m_pGailiMontionCtrCard = NULL;
	}

	if (m_pPmacMotionCtrCard!=NULL)
	{
		delete m_pPmacMotionCtrCard;
		m_pPmacMotionCtrCard = NULL;
	}
}